#ifndef GUIMAP_H_
#define GUIMAP_H_

#include "map/Map.h"
#include "map/Intersection.h"
#include "map/RoadSegment.h"
#include "gui/objects/GUIObjectsContainer.h"
#include "util/LinkedList.h"

namespace gui {

class GUIMap: public GUIObjectsContainer {
public:

	GUIMap(Map* map);

	virtual ~GUIMap();

	virtual int getTotalHeight();

	virtual int getTotalWidth();

	virtual int getTopLimit();

	virtual int getLeftLimit();

	virtual void addGUIBaseSegment(RoadSegment* roadSegment);

	virtual void addGUIIntersection(Intersection* intersection, RoadType type);

	virtual void addGUIRoadSegment(RoadSegment* roadSegment);

	virtual void addGUIRoadArrow(RoadSegment* roadSegment);

	virtual void addGUIRoadArrow(RoadSegment* roadSegment, bool inverted);

	virtual void addGUIMapLocation(MapLocation* mapLocation);

private:

	Map* map;

};

}

#endif /* GUIMAP_H_ */
